#ifndef CC_DECODE_h
#define CC_DECODE_h

int nms_cpu(float const* Box, float const* score,bool* keep, int kInfoNumber,float const& iou_threshold, int filled_size);

int decode(float const* dpuout_cls,float const* dpuout_box, float const* dpuout_dir, float const* dpuout_pos,
        float const* anchors_, float const* ClassThreshold,float const pos_threshold,
        float *scores,float* Bbox,int* label,int const kMaxResultSize, int filled_size_,
        int const NetLength,int const NetWidth,int const ClassNumber, int kRadianNumber,
           int kInfoNumber,const int downsize,float const* voxels_size, float const* pts_range);

int decode_chw(float const* dpuout_cls,float const* dpuout_box, float const* dpuout_dir, float const* dpuout_pos,
           float const* anchors_, float const* ClassThreshold,float const pos_threshold,
           float *scores,float* Bbox,int* label,int const kMaxResultSize, int filled_size_,
           int const NetLength,int const NetWidth,int const ClassNumber, int kRadianNumber,
           int kInfoNumber,const int downsize,float const* voxels_size, float const* pts_range);

int decode_hwc8(std::int8_t const* dpuout_cls,std::int8_t const* dpuout_box,
                std::int8_t const* dpuout_dir, std::int8_t const* dpuout_pos,
                float const scale_cls,float const scale_box,float const scale_dir,float const scale_pos,
                float const* anchors_, float const* ClassThreshold,float const pos_threshold,
                float *scores,float* Bbox,int* labels,int const kMaxResultSize, int filled_size_,
                int const NetLength,int const NetWidth,int const ClassNumber, int kRadianNumber,
                int kInfoNumber,const int downsize,float const* voxels_size,float const* pts_range);
#endif